﻿//#define _CRT_SECURE_NO_WARNINGS  1
////一定要动手，例子不管多么简单，建议至少自己手敲一遍看看是否理解了里头的细枝末节。
////一定要学会思考，思考为什么要这样，而不是那样。还要举一反三地思考
//#include<iostream>
//#include<string>
//#include<vector>
///*
//string();`          				//创建一个空的字符串 例如: string str;
//string(const char* s);`	            //使用字符串s初始化
//string(const string& str);`         //使用一个string对象初始化另一个string对象
//string(int n, char c);`             //使用n个字符c初始化 
//*/
//using namespace std;
//void test01()
//{
//	string v1("string");        //调用无参构造
//	cout << v1 << endl;
//
//	const char* str = "asdfgh";
//	string v4(str);             //将c_str转化为str
//	cout << v4 << endl;
//
//	string v2(v1);				//调用拷贝构造函数
//	cout << v2 << endl;
//
//	string v3(6, 'y');
//	cout << v3 << endl;
//}
//void test02()
//{
//	/*
//string& operator=(const char* s);`         //char*类型字符串 赋值给当前的字符串
//string& operator=(const string &s);`       //把字符串s赋给当前的字符串
//string& operator=(char c);`                //字符赋值给当前的字符串
//string& assign(const char *s);`            //把字符串s赋给当前的字符串
//string& assign(const char *s, int n);`     //把字符串s的前n个字符赋给当前的字符串
//string& assign(const string &s);`          //把字符串s赋给当前字符串
//string& assign(int n, char c);`            //用n个字符c赋给当前字符串
//	*/
//	//赋值
//	const char* s1 = "asdfg";
//	string s2 = s1;
//	cout << s2 << endl;
//
//	string s3;
//	s3 = s2;
//	cout << s3 << endl;
//
//	string s4;
//	s4 = 'j';
//	cout << s4 << endl;
//
//	string s5;
//	s5.assign("hello c++", 5);
//	cout << s5 << endl;
//
//	string s6;
//	s6.assign(6, 'p');
//	cout << s6 << endl;
//
//}
//int main()
//{
//	//初始化
//	//test01();
//	//赋值
//	test02();
//	system("pause");
//	return 0;
//
//}